<?php

/**
 * +----------------------------------------------------------------------
 * | 插件初始化  基础类
 * |
 * | ThinkCMF5、6、8 基于 ThinkPHP5、6、8
 * | 框架 https://github.com/thinkcmf/thinkcmf
 * | 内核 https://github.com/thinkcmf/cmf-core
 * +----------------------------------------------------------------------
 *                                            ...     .............
 *                                          ..   .:!o&*&&&&&ooooo&; .
 *                                        ..  .!*%*o!;.
 *                                      ..  !*%*!.      ...
 *                                     .  ;$$!.   .....
 *                          ........... .*#&   ...
 *                                     :$$: ...
 *                          .;;;;;;;:::#%      ...
 *                        . *@ooooo&&&#@***&&;.   .
 *                        . *@       .@%.::;&%$*!. . .
 *          ................!@;......$@:      :@@$.
 *                          .@!   ..!@&.:::::::*@@*.:..............
 *        . :!!!!!!!!!!ooooo&@$*%%%*#@&*&&&&&&&*@@$&&&oooooooooooo.
 *        . :!!!!!!!!;;!;;:::@#;::.;@*         *@@o
 *                           @$    &@!.....  .*@@&................
 *          ................:@* .  ##.     .o#@%;
 *                        . &@%..:;@$:;!o&*$#*;  ..
 *                        . ;@@#$$$@#**&o!;:   ..
 *                           :;:: !@;        ..
 *                               ;@*........
 *                       ....   !@* ..
 *                 ......    .!%$! ..     | AUTHOR: dfer
 *         ......        .;o*%*!  .       | EMAIL: df_business@qq.com
 *                .:;;o&***o;.   .        | QQ: 3504725309
 *        .;;!o&****&&o;:.    ..          | WEBSITE: http://www.dfer.site
 * +----------------------------------------------------------------------
 *
 */

namespace plugins\dfer_thinkcmf_tools;

use cmf\lib\Plugin as BasePlugin;
use think\helper\Str;
use Dfer\Tools\Statics\Common;

class Plugin extends BasePlugin
{

    use CommonTrait;

    // ThinkCMF版本
    protected $tc_version;
    protected $config;
    protected $root;

    public function __construct()
    {
        parent::__construct();
        $this->root = __DIR__;
        $this->tc_version = cmf_version();
        $this->config = $this->getConfig();
        $this->info['version']=Common::readFile($this->root.DIRECTORY_SEPARATOR.'version');
        
        $this->assign($this->config);
    }


    /**
     * 插件安装
     * @return {Bool} 安装成功返回true，失败false
     **/
    public function install()
    {
        return $this->createTable();
    }
    /**
     * 插件卸载
     * 在这里不要try catch数据库异常，直接抛出上层会处理异常后回滚的
     * @return {Bool} 卸载成功返回true，失败false
     **/
    public function uninstall()
    {
        return $this->dropTable();
    }




    ////////////////////////////////////////////////// 自定义方法 START //////////////////////////////////////////////////

    /**
     * 调用视图文件
     * @param {Object} $template 模板名
     */
    final protected function view($template)
    {
        //驼峰转下划线
        $template = Str::snake($template);
        return parent::fetch($template);
    }
    
    final protected function success($msg)
    {
        $result = [
            'code' => 1,
            'msg'  => $msg,
            'data' => null,
            'url'  => null,
            'wait' => 15,
        ];
        Common::showJsonBase($result);
    }
    
    
    //////////////////////////////////////////////////  自定义方法 END  //////////////////////////////////////////////////

}
